/**
 * 系统部门类型定义
 */

/**
 * 部门查询
 */
export interface DeptQuery {
  /** 关键词搜索（部门名称、负责人等） */
  keyword?: string
  /** 上级部门ID */
  parentId?: string
  /** 状态 */
  status?: number
}

/**
 * 系统部门
 */
export interface Dept {
  /** 部门ID */
  id: string
  /** 部门名称 */
  name: string
  /** 上级部门ID */
  parentId: string | null
  /** 部门层级 */
  level?: number
  /** 祖级列表 */
  ancestors?: string
  /** 负责人 */
  leader?: string
  /** 联系电话 */
  phone?: string
  /** 邮箱 */
  email?: string
  /** 排序序号 */
  orderNum: number
  /** 状态（0停用 1正常） */
  status: 0 | 1
  /** 是否有子部门 */
  hasChildren?: boolean
  /** 创建时间 */
  createTime: string
  /** 更新时间 */
  updateTime?: string
  /** 子部门 */
  children?: Dept[]
}

/**
 * 创建部门
 */
export interface CreateDept {
  /** 部门名称 */
  name: string
  /** 上级部门ID */
  parentId: string | null
  /** 负责人 */
  leader?: string
  /** 联系电话 */
  phone?: string
  /** 邮箱 */
  email?: string
  /** 排序序号 */
  orderNum: number
  /** 状态（0停用 1正常） */
  status: 0 | 1
}

/**
 * 更新部门
 */
export interface UpdateDept {
  /** 部门ID */
  id: string
  /** 部门名称 */
  name: string
  /** 上级部门ID */
  parentId: string | null
  /** 负责人 */
  leader?: string
  /** 联系电话 */
  phone?: string
  /** 邮箱 */
  email?: string
  /** 排序序号 */
  orderNum: number
  /** 状态（0停用 1正常） */
  status: 0 | 1
}

/**
 * 部门列表响应
 */
export interface DeptList {
  /** 部门列表 */
  list: Dept[]
  /** 总数 */
  total: number
}

/**
 * 扩展的部门项类型
 */
export interface ExtendedDept extends Dept {
  /** 子部门 */
  children?: ExtendedDept[]
  /** 用户数量 */
  userCount?: number
  /** 状态加载中 */
  statusLoading?: boolean
}